home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / rsxwdk2s.zip / RSXWDK / LIBSRC / SYSEMX / SBRK.C < prev    next >
C/C++ Source or Header  |  1994-10-13  |  563b  |  29 lines

  1. #include <sys/emx.h>
  2. #include <errno.h>
  3.  
  4. extern unsigned long _sys_heap_begin;
  5. extern unsigned long _sys_heap_end;
  6.  
  7. void * __sbrk (int incr)
  8. {
  9.     static int inited = 0;
  10.     static int _brk_left;
  11.     static int _brk_val;
  12.     void *retv;
  13.  
  14.     if (!inited) {
  15.     _brk_val = _sys_heap_begin;
  16.     _brk_left = _sys_heap_end - _sys_heap_begin;
  17.     inited = 1;
  18.     }
  19.  
  20.     if ((incr > _brk_left) || (_brk_val + incr > _sys_heap_end))
  21.     return ((void *)-1);
  22.  
  23.     retv = (void *) _brk_val;
  24.     _brk_val += incr;
  25.     _brk_left -= incr;
  26.  
  27.     return retv;
  28. }
  29.